# # # https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=bili&oq=%25E7%2588%25B1%25E5%25A5%2587%25E8%2589%25BA&rsv_pq=c0b06324000122df&rsv_t=539e3wLuGDbXfZ%2B5IrnO1O2uEb8%2F7kf2DT7tEjulBKPtCzgg3sTy%2FXAg9y8&rqlang=cn&rsv_enter=1&rsv_dl=tb&rsv_sug3=6&rsv_sug1=5&rsv_sug7=101&rsv_sug2=0&rsv_btype=t&inputT=1667&rsv_sug4=1667

# m = 'abcdefghijklmnopqrstuvwxyz'
# print(m[-1:-5:-1]) #zyxw


# x = 'abcldefghlijklmn'
# # 使用内置函数 len 可以获取字符串的长度
# print(len(x))

# # 查找内容相关的方法find / index / rfind  / rindex  可以获取指定元素字符的下标
# print(x.find('l'))  # 11
# print(x.index('l')) # 11

# print(x.find('p'))  # -1 如果字符在字符串中不存在，结果是-1
# print(x.index('p')) # 报错，如果字符在字符串中不存在，结果会报错

# x1 = 'asdfllkajsdfasdflkjl'
# print(x1.rfind('l'))    # 寻找字符串中符合的字符的最大的下标
# print(x1.rindex('l'))   # 寻找字符串中符合的字符的最大的下标



# P66 字符串查找和替换

# startswith() 方法用来判断是否以。。。为开头
# # endswith() 方法用来判断是否以...为结尾
# print('hello'.startswith('h'))      # True
# print('hello'.startswith('he'))     # True
# print('hello'.endswith('o'))        # True

# # is开头的方法是用来判断的
# print('hadfa'.isalpha())    # True 判断字符串里边是否全部为字母
# print('asdf5asdf4'.isalpha())   # False  判断字符串里是否全部为字母

# print('12354'.isdigit())   # True 用来判断字符串里是否全部为数字
# print('good'.isdigit())    # False   用来判断字符串里是否全部为数字
# print('3.14'.isdigit())    # False 有小数点也是False

# # 判断用户的输入来进行数据类型调整
# num = input('请输入一个数字：')
# if num.isdigit():
#     num = int(num)
# else:
#     print(num)

# print('adf2asdf5f4'.isalnum())     # True   用来判断是否由数字和字母组成
# print('561654'.isalnum())          # True
# print('hello'.isalnum())           # True
# print('4.1'.isalnum())           # False   可以有数字和字母，但是不能有符号

# print(' '.isspace())   # True      用来判断是否是空格

# # count()  用来计算字符的出现的次数

# # replace() 方法，用来替换字符串,字符串不可变数据类型
# # 原本的字符串的内容不会发生改变，replace()方法是会生成一个新的字符串来保存替换后的结果
# word = 'hello'
# m = word.replace('l' , 'x')       # replace 将字符串里的l替换为x
# print(word)
# print(m)

# #字符串分割相关方法

# split  splitlines partition rpartition
# 字符串类型的数据,将字符串进行切片
# x = 'zhangsan-lisi-wangwu-zhaoliu-qianqi-liuba'
# y1 = x.split('-')    # ['zhangsan','lisi','wangwu','zhaoliu','qianqi','liuba']
# print(y1)    # 切割以后的结果是一个列表
# z1 = x.rsplit('-')   # ['zhangsan','lisi','wangwu','zhaoliu','qianqi','liuba']
# print(z1)

# # 最大切割数，切出来两个，剩下的不切了
# y2 = x.split('-' , 2)  # ['zhangsan','lisi','wangwu-zhaoliu-qianqi-liuba']
# print(y2)
# z2 = x.rsplit('-' , 2) # 这个r所代表的是right,是从右边切
# # ['zhangsan-lisi-wangwu-zhaoliu','qianqi','liuba']
# print(z2)

# # partition 指定一个字符作为分隔符，分为三部分，前面一部分，分隔符一部分，后面一部分
# print('afasdfadbdfb'.partition('dbd'))  # [afasdfa,dbd,fb]
# # 就算有两个相同的分隔符，一样也是切割为3部分
# print('afasdfasbdfb'.partition('as'))   # [af,as,dfasbdfb]
# print('afasdfasbdfb'.rpartition('as'))  # 同样的原理，这里的r所代表的是right，代表的是右边
# # [afasdf，as，bdfb]


# # 获取文件名和后缀名
# file_name = '不要打开.mp4'
# print(file_name.partition('.'))

# file_name1 = '2020.12.12.mp4'
# print(file_name1.rpartition('.'))

# 字符串的常见操作

# # 修改大小写
# # capitalize()将字符串的首字母大写,只能将首字母大写，其他字母都改变不了
# print('hello'.capitalize())
# print('hello。good'.capitalize())
# print('hello\ngood'.capitalize())
# # upper()将所有字母全部大写
# print('hello'.upper())
# # lower()将所有字母全部小写
# print('hello'.lower())

# # title 每个单词的首字母大写
# print('good morning'.title())

# 不管用户输入的是大写还是小写的exit都进行退出
# while True:
#     content = input('请输入内容，输入exit退出：')
#     print("您输入的内容是：", content)
#     if content.upper() == 'EXIT':
#         break

# ljust(width,fillchar)==>让字符串以指定长度显示
# 如果长度不够，默认在右边使用空格补齐
# print('Monday'.ljust(10))

# print('Monday'.ljust(10, '+'))

# # rjust()原理与以上相同，只是l是左边，r是右边，使用方法都一样
# print('Monday'.rjust(10, '+'))

# # center() 将字符居中
# print('monday'.center(16, '*'))

# # lstrip   rstrip,删除字符串左边或者右边的空格
# print('++++---+a  p p l e  '.lstrip('+'))
# print('    a  p p l e  '.rstrip())
# print('    a  p p l e  '.strip())

# 以某种固定格式显示的字符，我们可以将它切割成一个列表
x = 'zhangsan+lisi+wangwu+zhaoliu'
names = x.split('+')
print(names)

# 将列表转换为一个字符串
fruits = ('apple', 'pear', 'banana', 'orange')
print('-'.join(fruits))
print('*'.join('hello'))
# 字符串和字符串之间可以使用加法运算，作用是拼接两个字符串
# 字符串和数字之间可以使用乘法运算，作用是将指定的字符串重复多次
# 字符串和数字之间做 == 运算结果是False,做！=运算结果是True
# 字符串之间做比较运算，会逐个比较字符串的编码值
# 不支持其他的运算